In a network environment, such as a local area network (LAN) or intranet, it is often necessary to transmit large blocks of data from a single server computer to multiple client computers simultaneously. For example, a file server—a computing device used for storing and distributing files and data—may be used to deploy and install a software application onto multiple client computers within a LAN. By distributing the software application via the network using the file server, the need for manually installing the software application on each computer is virtually eliminated. The same economies and savings attach to the distribution of other types of data in this manner as well. This significantly reduces the time and expense associated with disseminating data on a large scale.
For effective operation, the file server that transmits data to multiple client computers must be able to handle multiple network connections. In fact, to transmit the same data simultaneously to n computers, the file server must form at least n connections. So, for example, if there are ten client computers to which data is to be transmitted, the file server must establish ten connections—at least one connection to each client computer. The size of the file to be transmitted over each connection, as well as the number of connections n, ultimately determines the rate at which the transfer can be completed by the file server. Hence, the maximal rate of data transfer for the file server, sometimes known as the bandwidth capacity, has to be high enough to accommodate multiple connections and reasonably large file sizes.
Because of limited file server bandwidth capacity, however, there are inherent drawbacks to the method of data transmission discussed above. In particular, the ability of the file server to transmit file data is considerably impeded when the number of computing devices n, for which at least n connections are to be formed, is significant. Consider, for example, a scenario wherein the bandwidth capacity of a file server is 10 Mbps (megabits per second), and the file data to be transmitted is 10 MB. If the file server transmits the file data to a single client computer, only a single connection need be formed, and the file data is transferred in one second at 10 Mbps, the full bandwidth capacity of the server. However, if the number of clients is ten, ten connections must be established, and the 10 MB file is transferred in 10 seconds over each connection at a rate of only 1 Mbps. The relationship between the number of clients and the rate of transfer over a connection with respect to the bandwidth capacity is given as follows:Total amount of data to be transferred=number of clients×file sizeActual bandwidth required=Total amount of data to be transferred/sec
The amount of bandwidth actually required is the rate at which the file will be transferred over one connection multiplied by the number of connections to be serviced. As the number of clients increases, the required bandwidth increases while the ability to transfer a copy of the data at full bandwidth capacity erodes. Likewise, if the size of the file data increases, the same diminishing effects on the bandwidth capacity of the file server occur. In either case, the reliability of the data transfer process can be impacted as well.